﻿var _emptyTips = '请输入内容';
var _numTips = '请输入数字';
var _emailTips = '请输入合法的邮箱,如:123456789@hotmail.com';
var _urlTips = '请输入合法的Url地址,如 http://www.123456.com';
var _chineseTips = '请输入中文';
var _zipcodeTips = '请输入合法的邮编';
var _mobileTips = '请输入正确的手机号码<br/>如:138123456789';
var _ip4Tips = '请输入合法的IP地址,如:255.255.255.255';
var _dateTips = '请输入合法的日期格式,如:2013-05-23';
var _qqTips = '请输入合法的QQ号码';
var _telTips = '请输入合法的电话号码,如:0755-13245678';
var _letterTips = '请输入字母';
var _idcardTips = '请输入合法的身份证号码';
var _equalTips = "两次输入的密码不一致";

var _num = /^([+-]?)\d*\.?\d+$/; // 数字
var _email = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/; // 邮箱
var _chinese = /^[\u4E00-\u9FA5\uF900-\uFA2D]+$/; // 仅中文
var _zipcode = /^\d{6}$/ // 邮编
var _mobile = /^(13|15|18|17|14)[0-9]{9}$/; // 手机
var _ip4 = /^(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)$/; // ip地址
var _date = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/; // 日期
var _qq = /^[1-9]*[1-9][0-9]*$/; // QQ号码
var _tel = /^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/; // 电话号码的函数(包括验证国内区号,国际区号,分机号)
var _letter = /^[A-Za-z]+$/; // 字母
var _idcard = /^[1-9]([0-9]{14}|[0-9]{17})$/; // 身份证

// 表单验证
function callSubmit(frm) {
	var _isError = false; // 是否有错误标记
	var _tipMsg; // 提示信息
	var _obj;

	if (frm == null) {
		frm = "body";
	}

	$(frm).find("input,textarea,select").each(function() {
		var inputVal = this.value;
		_obj = $(this);

		// 非空验证
		if (_obj.attr("require")) {
			if (inputVal.length == 0) {
				if (_obj.attr("tips") && _obj.attr("tips").length != 0) {
					_tipMsg = _obj.attr("tips");
				} else {
					_tipMsg = _emptyTips;
				}
				_isError = true;
			}
		}

		// 密码输入确认
		else if (_obj.attr("equal")) {
			var tag = _obj.attr("equal");
			if ($(tag).val() != inputVal) {
				if (_obj.attr("tips") && _obj.attr("tips").length != 0) {
					_tipMsg = _obj.attr("tips");
				} else {
					_tipMsg = _equalTips;
				}
				_isError = true;
			}
		}
		// 邮箱
		else if (_obj.attr("email")) {

			// 判断是否允许空
			if (_obj.attr("email") != "true" && inputVal.length == 0) {

				// 进入下一次循环
				return true;
			}
			if (!_email.test(inputVal)) {
				if (_obj.attr("tips") && _obj.attr("tips").length != 0) {
					_tipMsg = _obj.attr("tips");
				} else {
					_tipMsg = _emailTips;
				}
				_isError = true;
			}
		}

		// 数字类型
		else if (_obj.attr("num")) {

			// 判断是否允许空
			if (_obj.attr("num") != "true" && inputVal.length == 0) {

				// 进入下一次循环
				return true;
			}

			if (!_num.test(inputVal)) {
				if (_obj.attr("tips") && _obj.attr("tips").length != 0) {
					_tipMsg = _obj.attr("tips");
				} else {
					_tipMsg = _numTips;
				}
				_isError = true;
			}
		}

		// 网址类型
		else if (_obj.attr("url")) {

			// 判断是否允许空
			if (_obj.attr("url") != "true" && inputVal.length == 0) {

				// 进入下一次循环
				return true;
			}
			if (!_IsURL(inputVal)) {
				if (_obj.attr("tips") && _obj.attr("tips").length != 0) {
					_tipMsg = _obj.attr("tips");
				} else {
					_tipMsg = _urlTips;
				}
				_isError = true;
			}
		}

		// 中文验证
		else if (_obj.attr("chinese")) {

			// 判断是否允许空
			if (_obj.attr("chinese") != "true" && inputVal.length == 0) {

				// 进入下一次循环
				return true;
			}

			if (!_chinese.test(inputVal)) {
				if (_obj.attr("tips") && _obj.attr("tips").length != 0) {
					_tipMsg = _obj.attr("tips");
				} else {
					_tipMsg = _chineseTips;
				}
				_isError = true;
			}
		}
		// 邮编
		else if (_obj.attr("zip")) {

			// 判断是否允许空
			if (_obj.attr("zip") != "true" && inputVal.length == 0) {

				// 进入下一次循环
				return true;
			}

			if (!_zipcode.test(inputVal)) {
				if (_obj.attr("tips") && _obj.attr("tips").length != 0) {
					_tipMsg = _obj.attr("tips");
				} else {
					_tipMsg = _zipcodeTips;
				}
				_isError = true;
			}
		}
		// 手机号
		else if (_obj.attr("mobile")) {

			// 判断是否允许空
			if (_obj.attr("mobile") != "true" && inputVal.length == 0) {

				// 进入下一次循环
				return true;
			}

			if (!_mobile.test(inputVal)) {
				if (_obj.attr("tips") && _obj.attr("tips").length != 0) {
					_tipMsg = _obj.attr("tips");
				} else {
					_tipMsg = _mobileTips;
				}
				_isError = true;
			}
		}

		// ip地址验证
		else if (_obj.attr("ip")) {

			// 判断是否允许空
			if (_obj.attr("ip") != "true" && inputVal.length == 0) {

				// 进入下一次循环
				return true;
			}

			if (!_ip4.test(inputVal)) {
				if (_obj.attr("tips") && _obj.attr("tips").length != 0) {
					_tipMsg = _obj.attr("tips");
				} else {
					_tipMsg = _ip4Tips;
				}
				_isError = true;
			}
		}

		// 日期类型
		else if (_obj.attr("date")) {

			// 判断是否允许空
			if (_obj.attr("date") != "true" && inputVal.length == 0) {

				// 进入下一次循环
				return true;
			}

			if (!_date.test(inputVal)) {
				if (_obj.attr("tips") && _obj.attr("tips").length != 0) {
					_tipMsg = _obj.attr("tips");
				} else {
					_tipMsg = _dateTips;
				}
				_isError = true;
			}
		}

		// qq号
		else if (_obj.attr("qq")) {

			// 判断是否允许空
			if (_obj.attr("qq") != "true" && inputVal.length == 0) {

				// 进入下一次循环
				return true;
			}

			if (!_qq.test(inputVal)) {
				if (_obj.attr("tips") && _obj.attr("tips").length != 0) {
					_tipMsg = _obj.attr("tips");
				} else {
					_tipMsg = _qqTips;
				}
				_isError = true;
			}
		}

		// 固定电话
		else if (_obj.attr("tel")) {

			// 判断是否允许空
			if (_obj.attr("tel") != "true" && inputVal.length == 0) {

				// 进入下一次循环
				return true;
			}

			if (!_tel.test(inputVal)) {
				if (_obj.attr("tips") && _obj.attr("tips").length != 0) {
					_tipMsg = _obj.attr("tips");
				} else {
					_tipMsg = _telTips;
				}
				_isError = true;
			}
		}

		// 只允许输入字母
		else if (_obj.attr("letter")) {

			// 判断是否允许空
			if (_obj.attr("letter") != "true" && inputVal.length == 0) {

				// 进入下一次循环
				return true;
			}

			if (!_letter.test(inputVal)) {
				if (_obj.attr("tips") && _obj.attr("tips").length != 0) {
					_tipMsg = _obj.attr("tips");
				} else {
					_tipMsg = _letterTips;
				}
				_isError = true;
			}
		}

		// 身份证
		else if (_obj.attr("idcard")) {

			// 判断是否允许空
			if (_obj.attr("idcard") != "true" && inputVal.length == 0) {

				// 进入下一次循环
				return true;
			}

			if (!_idcard.test(inputVal)) {
				if (_obj.attr("tips") && _obj.attr("tips").length != 0) {
					_tipMsg = _obj.attr("tips");
				} else {
					_tipMsg = _idcardTips;
				}
				_isError = true;
			}
		} else {
			;
		}

		if (_isError) {
			return false;
		}
	});

	if (_isError == false) {
		return true;
	} else {

		// 弹出提示框
    GlToast({
			body : _tipMsg,
			onClose : function() {
				// 让该输入框获得焦点
				$(_obj).focus();
			}
		});
		return false;
	}
}

function _IsURL(url) {
	var strRegex = "^((https|http|ftp|rtsp|mms)?://)"
			+ "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" // ftp的user@
			+ "(([0-9]{1,3}\.){3}[0-9]{1,3}" // IP形式的URL- 199.194.52.184
			+ "|" // 允许IP和DOMAIN（域名）
			+ "([0-9a-z_!~*'()-]+\.)*" // 域名- www.
			+ "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\." // 二级域名
			+ "[a-z]{2,6})" // first level domain- .com or .museum
			+ "(:[0-9]{1,4})?" // 端口- :80
			+ "((/?)|" // a slash isn't required if there is no file name
			+ "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$";
	var re = new RegExp(strRegex);
	if (re.test(url)) {
		return true;
	} else {
		return false;
	}
}
